package com.ck.dao;


import com.ck.model.common.File;
import com.ck.model.company.dto.CpFileListDTO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

/**
 * 文件Mapper
 *
 * @author dxy
 * @date 2018/9/13 9:47
 */
public interface FileMapper {
	/**
	 * 保存文件
	 * @param file File
	 */
	void insertFile(File file);

	/**
	 * 更新文件
	 * @param file File
	 */
	void updateFileById(File file);

	/**
	 * 通过名字获取文件
	 * @param companyCode 公司编码
	 * @param fileName 文件名称
	 * @return File
	 */
	File getFileByName(@Param("companyCode") String companyCode, @Param("fileType") Integer fileType, @Param("fileSuffix") String fileSuffix, @Param("fileName") String fileName);

	/**
	 * 获取文件列表
	 * @param companyCode 公司编码
	 * @param fileName 文件名
	 * @param fileType 文件类型
	 * @return List<CpFileListDTO>
	 */
	Page<CpFileListDTO> listFile(@Param("companyCode") String companyCode, @Param("fileType") Integer fileType, @Param("fileName") String fileName);

	/**
	 * 通过相似文件名获取文件总数
	 * @param companyCode 公司编码
	 * @param fileName 文件名称
	 * @return Long
	 */
	Long countFileLikeName(@Param("companyCode") String companyCode, @Param("fileType") Integer fileType, @Param("fileSuffix") String fileSuffix, @Param("fileName") String fileName);

	/**
	 * 通过文件ID获取文件
	 * @param fileId 文件ID
	 * @return File
	 */
	File getFileById(Long fileId);

	/**
	 * 通过ID删除文件
	 * @param fileId 文件ID
	 */
	void deleteFileById(Long fileId);

}
